
#include "euleroperator.h"

class HEDModel;
class HalfEdge;


class MEF : public EulerOperator
{

public:

  // corresponds to the smef of Mantyla
  MEF(HEDModel& _model, int _s, int _v1, int _v3, int _f2);
  // corresponds to the mef of Mantyla
  MEF(HEDModel& _model, int _s, int _f1, int _v1, int _v2, int _v3, int _v4, int _f2);
  // corresponds to the lmef of Mantyla
  MEF(HalfEdge* _he1, HalfEdge* _he2, int _f);
  void execute();
  void unExecute();

private:
  void checksInputData(HEDModel& _model, int _s, int _f1, int _v1, int _v2, int _v3, int _v4);

private:
  HalfEdge* he1;
  HalfEdge* he2;
  int f;

};